home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / tool / ugoku / src / vdsys / vdsysx.c < prev    next >
Text File  |  1994-11-16  |  5KB  |  195 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <winb.h>
  5. #include <te.h>
  6. #include <fntb.h>
  7. #include <gui.h>
  8. #include <file_dlg.h>
  9. #include <egb.h>
  10. #include <mos.h>
  11. #include <snd.h>
  12. #include <guidbg.h>
  13. #include "ugoku.h"
  14.  
  15. char    *guiEgbPtr ;            /*    EGB のワークアドレス    */
  16. char    guiSndPtr[16*1024] ;    /*    SND のワークアドレス    */
  17.  
  18. void main( ac, av )
  19. char ac,*av[];
  20. {
  21.     extern int APL_init() ;
  22.     extern int initV02Table( char, char **, int, char * ) ;
  23.     extern int mouseDsp( int ) ;        /*    マウス表示関数        */
  24.     MMICTRL ctrl ;
  25.  
  26.     /*    致命的エラーハンドラの登録    */
  27.     FM_SetVector() ;
  28.  
  29.     /*    サウンドの初期化    */
  30.     SND_init(guiSndPtr) ;
  31.  
  32.     /*    初期化処理    */
  33.     ctrl.page0 = 3 ;
  34.     ctrl.page1 = 10 ;
  35.     ctrl.writePage = 0 ;
  36.     ctrl.displayPage = 3 ;
  37.     ctrl.priority = 0 ;
  38.  
  39.     ctrl.mode = 0 ;
  40.     ctrl.width = 512 ;
  41.     ctrl.size = 0 ;
  42.     ctrl.ptr = NULL ;
  43.     ctrl.asize = 0 ;
  44.     ctrl.aptr = NULL ;
  45.     ctrl.fr.lupx = 0 ;
  46.     ctrl.fr.lupy = 0 ;
  47.     ctrl.fr.rdwx = 639 ;
  48.     ctrl.fr.rdwy = 479 ;
  49.     ctrl.move.lupx = 0 ;
  50.     ctrl.move.lupy = 20 ;    /*    ダイアログの移動範囲に制限を付ける(y座標)    */
  51.     ctrl.move.rdwx = 639 ;
  52.     ctrl.move.rdwy = 479 ;
  53.     ctrl.white = 15 ;
  54.     ctrl.black = 8 ;        /*    パレット変更に伴いGUIの表示色を変更(黒)        */
  55.     ctrl.gray = 7 ;            /*                 〃                    (灰色)    */
  56.     ctrl.xor = 7 ;            /*                 〃                    (反転色)    */
  57.     if (MMI_Open( &ctrl ) == NOERR)
  58.     {
  59.         /*    初期化に成功すればメインループに入る.    */
  60.         if (APL_init() == NOERR)
  61.         {
  62.  
  63.             FDG_SaveCurDir() ;        /*    カレントディレクトリ保存    */
  64.             FDG_InitFileDlg() ;        /*    ファイルダイアログ初期化    */
  65.  
  66.             mouseDsp( 80 ) ;        /*    マウス表示関数        */
  67.  
  68.             if( ac > 0 )
  69.             {
  70.                 initV02Table( ac, av, 6, av[0] ) ;    /*  v02table setting */
  71.                 MMI_ExecSystem() ;        /*    メインのイベントループ        */
  72.             }
  73.  
  74.             FDG_FreeFileDlg() ;        /*    ファイルダイアログ終了処理    */
  75.             FDG_RecovCurDir() ;        /*    カレントディレクトリ復元    */
  76.         }
  77.         MMI_SendMessage( MMI_GetBaseObj(), MM_ERASE, 0 ) ;
  78.     }
  79.  
  80.     /*    終了処理    */
  81.     MMI_Close() ;
  82.  
  83.     /*    サウンドの終了    */
  84.     SND_end() ;
  85.  
  86.     /*    致命的エラーハンドラの復帰    */
  87.     FM_ResetVector() ;
  88. }
  89.  
  90. int APL_init()
  91. {
  92.     extern int        setPalette( char * ) ;    /*    パレット設定関数    */
  93.     extern int        mouseDsp( int ) ;        /*    マウス表示関数        */
  94.     extern int        mItemId[] ;
  95.     extern MMIINIT    initDataIVDDSK ;
  96.     extern MMIINIT    initDataIVDABOU ;
  97.     extern MMIINIT    initDataIVDERR ;
  98.     extern MMIINIT    initDataIVDREC ;
  99.     extern MMIINIT    initDataIVDORG ;
  100.     extern MMIINIT    initDataIVDPAC ;
  101.     extern MMIINIT    initDataIVDPLY ;
  102.     extern MMIINIT    initDataIVDEDT ;
  103.  
  104.     register int    ret ;
  105.  
  106.     /*    EGB ワークアドレスの取得.    */
  107.     guiEgbPtr = MMI_GetEgbPtr() ;
  108.  
  109.     /*    ハイパ型部品の初期化            */
  110.     if ((ret = MMI_initHyper()) < 0)
  111.         return ret ;
  112.     /*    ダイアログ型部品の初期化        */
  113.     if ((ret = MMI_initDialogL40()) < 0)
  114.         return ret ;
  115.     /*    アラート型部品の初期化            */
  116.     if ((ret = MMI_initAlertL40()) < 0)
  117.         return ret ;
  118.     /*    メッセージ型部品の初期化        */
  119.     if ((ret = MMI_initMessageL40()) < 0)
  120.         return ret ;
  121.     /*    メニュー型部品の初期化            */
  122.     if ((ret = MMI_initMenuL40()) < 0)
  123.         return ret ;
  124.     /*    ボタン型部品の初期化            */
  125.     if ((ret = MMI_initButtonL40()) < 0)
  126.         return ret ;
  127.     /*    ドロウボタン型部品の初期化        */
  128.     if ((ret = MMI_initDrawButtonL40()) < 0)
  129.         return ret ;
  130.     /*    アイコンボタン型部品の初期化    */
  131.     if ((ret = MMI_initIconL40()) < 0)
  132.         return ret ;
  133.     /*    トグルアイコン型部品の初期化    */
  134.     if ((ret = MMI_initToggleIconL40()) < 0)
  135.         return ret ;
  136.     /*    メニューアイテム型部品の初期化    */
  137.     if ((ret = MMI_initMenuItemL40()) < 0)
  138.         return ret ;
  139.  
  140.     /*    スクロール型部品の初期化        */
  141.     if ((ret = MMI_initScrollBarL40()) < 0)
  142.         return ret ;
  143.     /*    テキスト型部品の初期化            */
  144.     if ((ret = MMI_initTextL40()) < 0)
  145.         return ret ;
  146.     /*    リストメニュー型部品の初期化    */
  147.     if ((ret = MMI_initListMenuL40()) < 0)
  148.         return ret ;
  149.  
  150.     /*    数値入力型部品の初期化            */
  151.     if ((ret = MMI_initNumBoxL40()) < 0)
  152.         return ret ;
  153.  
  154.     /*    パレット変更・・・・2画面使用の影響を受けるため */
  155.     ret = setPalette( guiEgbPtr ) ;
  156.  
  157.     /*    マウスカーソル表示関数の変更・・・・2画面使用の影響を受けるため */
  158.     MMI_SetPtrFunc( mouseDsp ) ;
  159.  
  160.     /*    背景データの初期化                        */
  161.  
  162.     /*    データの登録        */
  163.     if ((ret = MMI_Init(&initDataIVDDSK)) < 0)
  164.         return ret ;
  165.  
  166.     if ((ret = MMI_Init(&initDataIVDABOU)) < 0)
  167.         return ret ;
  168.  
  169.     if ((ret = MMI_Init(&initDataIVDERR)) < 0)
  170.         return ret ;
  171.  
  172.     if ((ret = MMI_Init(&initDataIVDREC)) < 0)
  173.         return ret ;
  174.  
  175.     if ((ret = MMI_Init(&initDataIVDORG)) < 0)
  176.         return ret ;
  177.  
  178.     if ((ret = MMI_Init(&initDataIVDPAC)) < 0)
  179.         return ret ;
  180.  
  181.     if ((ret = MMI_Init(&initDataIVDPLY)) < 0)
  182.         return ret ;
  183.  
  184.     if ((ret = MMI_Init(&initDataIVDEDT)) < 0)
  185.         return ret ;
  186.  
  187.     /*    SIDEWORKメニューの登録                    */
  188.     ret = MMI_SetUpSDKMenu( mItemId[0], 2 ) ;
  189.  
  190.     /*    背景を表示する                            */
  191.     MMI_SendMessage(MMI_GetBaseObj(), MM_SHOW, 0) ;
  192.  
  193.     return NOERR ;
  194. }
  195.